package com.wgy.day33其他增强流.缓冲流.字符缓冲流;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

/**
 * Created by pc on 2020/12/5 20:41
 * Description: LearningJava
 */
/*
java.io.BufferedReader extends Reader
BufferedReader :字符缓冲输入流

继承来自父类的共性成员方法:
   public void close():关闭此流并释放与此流相关的任何系统资源
   public int read(): 从输入流读取一个字符,(读取单个字符并返回)
   public int read(char[] cbuf):从输入流读取一些字符,并将它们存储到字符数组cbuf中(一次读取多个字符,并将读取到的字符存储到cbuf数组中)

构造方法:
   BufferedReader (Reader in):创建一个使用默认大小输出缓冲区的缓冲字符输入流
   BufferedReader (Reader in,int size):创建一个使用给定大小输出缓冲区的缓冲字符输入流
        参数:Reader in:字符输入流
                        我们可以传递FileReader,缓冲流会给FileReader增加一个缓冲区.提供FileReader的读取效率
            int size:指定缓冲区的大小,不写默认大小

特有的成员方法:
   String readLine()读取一行文本.读取一行数据
        行的终止符:通过下列字符之一即可认为某行已终止:换行(\n),回车(\r),或者回车后直接跟着换行(\r\n).
        返回值:包含该行内容的字符串,不包含任何终止符,如果已经到达流末尾,则返回null

使用步骤:1.创建字符缓冲输入流对象,构造方法中传递字符输入流
        2.调用字符缓冲输入流中的方法read/readLine读取文本
        3.释放资源
*/
public class Demo02BufferedReader {
    public static void main(String[] args) throws IOException {
        show03();
    }
    public static void show01() throws IOException {
        //1.创建字符缓冲输入流对象,构造方法中传递字符输入流
        BufferedReader br=new BufferedReader(new FileReader("D:\\小云\\abc\\b\\b.txt"));
        // 2.调用字符缓冲输入流中的方法read/readLine读取文本
        int len=0;
        while ((len=br.read())!=-1){
            System.out.println(len);
        }
        //3.释放资源
        br.close();
    }
    public static void show02() throws IOException {
        //1.创建字符缓冲输入流对象,构造方法中传递字符输入流
        BufferedReader br=new BufferedReader(new FileReader("D:\\小云\\abc\\b\\b.txt"));//源文件:传智播客1 传智播客2 传智播客3
        // 2.调用字符缓冲输入流中的方法read/readLine读取文本
        String line = br.readLine();
        System.out.println(line);//传智播客1

        line=br.readLine();
        System.out.println(line);//传智播客2

        line=br.readLine();
        System.out.println(line);//传智播客3

        line=br.readLine();
        System.out.println(line);//null

        //3.释放资源
        br.close();
    }
    public static void show03() throws IOException {
        //1.创建字符缓冲输入流对象,构造方法中传递字符输入流
        BufferedReader br=new BufferedReader(new FileReader("D:\\小云\\abc\\b\\b.txt"));//源文件:传智播客1 传智播客2 传智播客3
        // 2.调用字符缓冲输入流中的方法read/readLine读取文本
       String line;
       while ((line=br.readLine())!=null){
           System.out.println(line);
       }

        //3.释放资源
        br.close();
    }
}
